home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Shareware Grab Bag
/
Shareware Grab Bag.iso
/
002
/
pcw271b.arc
/
PSDOWN.TXT
< prev
next >
Wrap
Text File
|
1986-12-23
|
11KB
|
289 lines
% PSDOWN.TXT
% This collection of definitions allows a PC-WRITE user to use a PostScript
% printer such as the Apple LaserWriter or the QMS PS-800. This file
% must be downloaded to your PostScript printer before printing with PC-Write.
% To download this file use the DOS PRINT command. Make sure you have access
% to the PRINT.COM file. At the DOS prompt type:
% PRINT PSDOWN.TXT <Enter>
% If this is the first time you have invoked the PRINT command, you will be
% prompted for the port your printer is attached to (probably COM1 or COM2).
% Once PSDOWN.TXT is downloaded, you can either print to a file with PC-Write
% and use DOS PRINT for output, or you can use the XON/XOFF capabilities of
% PC-Write by printing to SER1 or SER2.
% REMEMBER, each time you turn your printer on, and want to print using
% PC-Write, you must download the PSDOWN.TXT file as described above.
% Be sure you have selected the Adobe PostScript driver from the MENULAZ
% program.
% This file was written for Quicksoft by George A. Miller.
statusdict begin statusdict /waittimeout 0 put end %set no time out
300 dict begin
/reencsmalldict 12 dict def
/ReEncodeSmall
{reencsmalldict begin
/newcodesandnames exch def
/newfontname exch def
/basefontname exch def
/basefontdict basefontname findfont def
/newfont basefontdict maxlength dict def
basefontdict
{exch dup /FID ne
{dup /Encoding eq
{exch dup length array copy newfont 3 1 roll put}
{exch newfont 3 1 roll put} ifelse }
{pop pop} ifelse } forall
newfont /FontName newfontname put
newcodesandnames aload pop
newcodesandnames length 2 idiv
{newfont /Encoding get 3 1 roll put} repeat
newfontname newfont definefont pop end } def
/pcwritevec [
8#321 /Ccedilla
8#322 /udieresis
8#323 /eacute
8#324 /acircumflex
8#325 /adieresis
8#326 /agrave
8#327 /aring
8#330 /ccedilla
8#331 /ecircumflex
8#332 /edieresis
8#333 /egrave
8#334 /idieresis
8#335 /icircumflex
8#336 /igrave
8#337 /Ddieresis
8#340 /Aring
8#342 /Eacute
8#344 /ocircumflex
8#345 /odieresis
8#346 /ograve
8#347 /ucircumflex
8#354 /ugrave
8#355 /ydieresis
8#356 /Odieresis
8#357 /Udieresis
8#360 /aacute
8#362 /iacute
8#363 /oacute
8#364 /uacute
8#366 /ntilde
8#367 /Ntilde
] def
/c321 {(\321) fullshow} def
/c322 {(\322) fullshow} def
/c323 {(\323) fullshow} def
/c324 {(\324) fullshow} def
/c325 {(\325) fullshow} def
/c326 {(\326) fullshow} def
/c327 {(\327) fullshow} def
/c330 {(\330) fullshow} def
/c331 {(\331) fullshow} def
/c332 {(\332) fullshow} def
/c333 {(\333) fullshow} def
/c334 {(\334) fullshow} def
/c335 {(\335) fullshow} def
/c336 {(\336) fullshow} def
/c337 {(\337) fullshow} def
/c340 {(\340) fullshow} def
/c342 {(\342) fullshow} def
/c344 {(\344) fullshow} def
/c345 {(\345) fullshow} def
/c346 {(\346) fullshow} def
/c347 {(\347) fullshow} def
/c354 {(\354) fullshow} def
/c355 {(\355) fullshow} def
/c356 {(\356) fullshow} def
/c357 {(\357) fullshow} def
/c360 {(\360) fullshow} def
/c362 {(\362) fullshow} def
/c363 {(\363) fullshow} def
/c364 {(\364) fullshow} def
/c366 {(\366) fullshow} def
/c367 {(\367) fullshow} def
/c245 {(\245) fullshow} def
/c361 {(\361) fullshow} def
/c341 {(\341) fullshow} def
/c242 {(\242) fullshow} def
/c243 {(\243) fullshow} def
/c246 {(\246) fullshow} def
/c343 {(\343) fullshow} def
/c353 {(\353) fullshow} def
/c277 {(\277) fullshow} def
/c241 {(\241) fullshow} def
/c253 {(\253) fullshow} def
/c273 {(\273) fullshow} def
/c225 {(\225) fullshow} def
/c312 {(\312) fullshow} def
/c267 {(\267) fullshow} def
/c264 {(\264) fullshow} def
/c250 {(\250) fullshow} def
/c374 {gsave currentpoint exch pop rightmargin exch sub 16 sub
0 -6 rmoveto 0 exch rlineto stroke grestore} def
/c375 {gsave currentpoint newpath exch pop rightmargin exch sub 16 sub dup
0 -6 rmoveto 0 exch rlineto
0 6 lineheight add rlineto
neg 0 rlineto closepath gsave stroke grestore
currentgray .8 setgray fill setgray grestore } def
/Times-Roman /Times-Roman-PCWrite pcwritevec ReEncodeSmall
/Times-Italic /Times-Italic-PCWrite pcwritevec ReEncodeSmall
/Times-Bold /Times-Bold-PCWrite pcwritevec ReEncodeSmall
/Helvetica /Helvetica-PCWrite pcwritevec ReEncodeSmall
/Helvetica-Bold /Helvetica-Bold-PCWrite pcwritevec ReEncodeSmall
/Courier /Courier-PCWrite pcwritevec ReEncodeSmall
/Times-Roman /Times-Roman-PCWrite pcwritevec ReEncodeSmall
/2dup {dup 3 -1 roll dup 4 1 roll exch} def % duplicates top two elements
/command (# ) def % this is the command string
/ccommand (c ) def % this is the character command string
/checkHeight {scalefont} def % dup 1.15 mul /lineheight exch def
/#B {/Times-Bold-PCWrite findfont 10 checkHeight setfont} def
/#C {/Times-Roman-PCWrite findfont 8 checkHeight setfont} def
/#D {/Helvetica-Bold-PCWrite findfont 15 checkHeight setfont} def
/#E {/Courier-PCWrite findfont 10 checkHeight setfont} def
/#F {/Courier-PCWrite findfont 12 checkHeight setfont} def
/#I {/Times-Italic-PCWrite findfont 10 checkHeight setfont} def
/#J {/Courier-PCWrite findfont 15 checkHeight setfont} def
/#P {/Times-Roman-PCWrite findfont 10 checkHeight setfont} def
/#Q {/Times-Roman-PCWrite findfont 12 checkHeight setfont} def
/#V {/Helvetica-PCWrite findfont 8 checkHeight setfont} def
/#H { currentpoint 0 lineheight 4 div translate moveto .75 .75 scale} def
/#h { 4 3 div dup scale currentpoint 0 lineheight 4 div neg translate moveto} def
/#L { currentpoint 0 lineheight 6 div neg translate moveto .75 .75 scale} def
/#l { 4 3 div dup scale currentpoint 0 lineheight 6 div translate moveto} def
/#M { .3 setgray } def
/#N {isExecute not {fullshowpage} if} def
/#O {/isCrossout true def} def
/#o {/isCrossout false def} def
/crossout % string CROSSOUT => {backs up and draws an a strike line}
{stringwidth pop /width exch def
lineheight 20 div dup mul setlinewidth
/linewidth lineheight 4 div def
width neg linewidth rmoveto
width 0 rlineto gsave stroke grestore 0 linewidth neg rmoveto} def
/#m { 0 setgray } def
/## {(#) fullshow} def
/isUnderline false def
/#U {/isUnderline true def} def
/#u {/isUnderline false def} def
/underline % string UNDERLINE => {backs up and draws an underline}
{stringwidth pop /width exch def
lineheight 20 div dup mul dup setlinewidth dup add /linewidth exch def
width neg linewidth neg rmoveto
width 0 rlineto gsave stroke grestore 0 linewidth rmoveto} def
/isDoubleUnderline false def
/#W {/isDoubleUnderline true def} def
/#w {/isDoubleUnderline false def} def
/doubleUnderline % string DOUBLEUNDERLINE => {backs up and draws two underline}
{stringwidth pop /width exch def
lineheight 20 div dup mul dup setlinewidth dup add /linewidth exch def
width neg linewidth neg rmoveto
width 0 rlineto gsave stroke grestore 0 linewidth rmoveto
/linewidth linewidth 3 mul def
width neg linewidth neg rmoveto
width 0 rlineto gsave stroke grestore 0 linewidth rmoveto} def
/isCrossout false def
/isSecondStrike false def
/#S {/isSecondStrike true def} def
/#s {/isSecondStrike false def} def
/secondStrike % string SECONDSTRIKE => {backs up and writes the string again}
{dup stringwidth pop neg lineheight 20 div dup mul add 0 rmoveto show} def
/#R % leaves the currentpoint on the stack for the begining of a box
{currentpoint lineheight add 3 -1 roll} def
/#r % assumes the upper left hand corner of a box is on the stack and the
% current point is the lower right hand corner. If the halftone is on,
% (/M) then the box will be filled with a light shading.
{ gsave 3 1 roll currentpoint
lineheight 20 div dup mul 6 mul sub % lower the box line a bit
newpath 2dup moveto
3 1 roll 2dup exch lineto
4 1 roll 3 -1 roll 2dup exch lineto
3 -1 roll lineto
pop pop closepath
1 setlinewidth
stroke
grestore} def
/isPortrait true def
/portrait {initmatrix 22 10 translate
/rightmargin 576 def
/isPortrait true def /line startline def } def
/landscape {initmatrix 90 rotate 10 -794 translate
/rightmargin 756 def
/isPortrait false def /line startline def } def
/#Y {/pagelength 66 def /lines 0 def portrait leftmargin line moveto} def
/#Z {/pagelength 49 def /lines 0 def landscape leftmargin line moveto} def
/#z {isPortrait {#Y} {#Z} ifelse} def
% this is home command
/cexecute {/ccommand exch def currentdict ccommand cvn known
{ccommand cvx exec}
{(*** error *** unknown character command:) = ccommand =} ifelse} def
/#G % will show a special character, eg. #G c321. will display the cedilla
% IMPORTANT: a period must follow the number.
{(.) search { cexecute pop } if} def
/#A % adjusts the lineheight. Eg. #A 12. will set the lineheight to 1/12th
% of an inch. IMPORTANT: a period must follow the number.
{(.) search { cvi 72 exch div /lineheight exch def pop } if} def
/#a % moves the current point to the right. Eg. #a 12. will insert 1/12th
% of an inch of white space. IMPORTANT: a period must follow the number.
{(.) search { cvi 72 exch div 0 rmoveto pop } if} def
/isExecute false def %flag for the execute mode
/#T {/isExecute true def} def
/#t {/isExecute false def} def
/lineheight 12 def
/leftmargin 0 def
/startline 760 def
/line startline def
/lines 0 def
/pagelength 66 def
/buffer 2000 string def
/final {{dup (*end) eq {false} {true} ifelse} {false} ifelse} def
/fullshowpage {showpage isPortrait {#Y} {#Z} ifelse} def
/fullshow % executes string or shows then checks for underline et cetera
{ isExecute {cvx exec} { dup show
isUnderline {dup underline} if
isDoubleUnderline {dup doubleUnderline} if
isCrossout {dup crossout} if
isSecondStrike {dup secondStrike} if
pop} ifelse} def
/execute { command 1 3 -1 roll put currentdict command cvn known
{command cvx exec}
{(*** error *** unknown command:) = command =} ifelse} def
/strip { % strips off the string before # and prints it then executes
% the character following the #
(#) search
{fullshow pop
dup length 1 gt
{dup 0 get exch dup length 2 sub 2 exch getinterval exch}
{0 get () exch}
ifelse execute}
{fullshow () } ifelse
} def
/showBuffer % processes the string on the top of the stack
{{dup length 0 le {exit} if strip } loop pop } def
/IncLine {line lineheight sub /line exch def
lines 1 add dup pagelength ge
{pop 0 fullshowpage /line startline def} if /lines exch def} def
/create {leftmargin line moveto showBuffer IncLine} def
/anotherline {input buffer readline pop create} def % final {exit} ifelse
/input (%stdin) (r) file def
/*start {/line startline def /lines 0 def #E #Y %default font and orientation
{anotherline} loop } def
*start
#z #Y #F #A 6.
#D #D The PSDOWN.TXT file has been successfully downloaded to your printer.#F #F
#P #P When printing the PC-Write PRINT.TST first remove the X font line. The X font in the PostScript driver goes into raw PostScript#F #F
#P #P mode, which hangs the printer when printing PRINT.TST.#F #F
#N #F #A 6.#z